package com.hiraeth.modules.monitor.model.sd;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.hiraeth.modules.monitor.model.common.TlsConfig;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class ConsulSdConfig implements Serializable {
	
	private static final long serialVersionUID = 3328500043663139573L;

	/**
	 * consul 服务地址。默认localhost:8500
	 */
	private String server;
	
	/**
	 * 访问consul的token
	 */
	private String token;
	
	/**
	 * consul数据中心
	 */
	private String data_center;
	
	/**
	 * 请求协议，默认http
	 */
	private String scheme = "http";
	
	/**
	 * 用户名
	 */
	private String username;
	
	/**
	 * 密码
	 */
	private String password;
	
	private TlsConfig tls_config;
	
	/**
	 * 检索目标的服务列表。如果省略，则从所有服务中检索。
	 */
	private List<String> services;
	
	/**
	 * 用于筛选给定服务的节点的可选标记列表。服务必须包含列表中的所有标记。
	 */
	private List<String> tags;
	
	/**
	 * Consul标签通过其连接到标签标签中的字符串
	 */
	private String tag_separator;
	
	/**
	 * 设置为true, 表明可以从consul集群的任一server节点获取dns信息, false则表明每次请求都会经过consul server leader
	 */
	private boolean allow_stale;
	
	/**
	 * 刷新所提供的名称的时间。在大型设置中，增加这个值可能是一个好主意，因为目录会一直更改。默认30s
	 */
	private String refresh_interval;

}
